home *** CD-ROM | disk | FTP | other *** search
/ Apple Reference & Presen…on Library 1994 September / ARPLE-Sept-94-Supplement.iso / AppleSoft / QuickTime 2.0 / Interfaces / ImageCodec.h next >
Encoding:
C/C++ Source or Header  |  1994-06-20  |  7.2 KB  |  265 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        ImageCodec.h
  3.  
  4.     Copyright:    © 1991-1994 by Apple Computer, Inc., all rights reserved.
  5.  
  6. */
  7.  
  8. #ifndef    __IMAGECODEC__
  9. #define __IMAGECODEC__
  10.  
  11. #ifndef __QUICKDRAW__
  12. #include <Quickdraw.h>
  13. /*    #include <Types.h>                                            */
  14. /*        #include <ConditionalMacros.h>                            */
  15. /*        #include <MixedMode.h>                                    */
  16. /*            #include <Traps.h>                                    */
  17. /*    #include <QuickdrawText.h>                                    */
  18. /*        #include <IntlResources.h>                                */
  19. #endif
  20.  
  21. #ifndef __QDOFFSCREEN__
  22. #include <QDOffscreen.h>
  23. #endif
  24.  
  25. #ifndef __TYPES__
  26. #endif
  27.  
  28. #ifndef __COMPONENTS__
  29. #include <Components.h>
  30. #endif
  31.  
  32. #ifndef    __IMAGECOMPRESSION__
  33. #include <ImageCompression.h>
  34. /*    #include <StandardFile.h>                                    */
  35. /*        #include <Dialogs.h>                                    */
  36. /*            #include <Windows.h>                                */
  37. /*                #include <Events.h>                                */
  38. /*                    #include <OSUtils.h>                        */
  39. /*                #include <Controls.h>                            */
  40. /*                    #include <Menus.h>                            */
  41. /*            #include <TextEdit.h>                                */
  42. /*        #include <Files.h>                                        */
  43. /*            #include <SegLoad.h>                                */
  44. /*    #include <ToolUtils.h>                                        */
  45. /*        #include <TextUtils.h>                                    */
  46. /*            #include <Script.h>                                    */
  47. /*        #include <FixMath.h>                                    */
  48. #endif
  49.  
  50. #define codecGetCodecInfo 0x00
  51.  
  52. #define codecGetCompressionTime 0x01
  53.  
  54. #define codecGetMaxCompressionSize 0x02
  55.  
  56. #define codecPreCompress 0x03
  57.  
  58. #define codecBandCompress 0x04
  59.  
  60. #define codecPreDecompress 0x05
  61.  
  62. #define codecBandDecompress 0x06
  63.  
  64. #define codecCDSequenceBusy 0x07
  65.  
  66. #define codecGetCompressedImageSize 0x08
  67.  
  68. #define codecGetSimilarity 0x09
  69.  
  70. #define codecTrimImage 0x0A
  71.  
  72. #define codecRequestSettings 0x0B
  73.  
  74. #define codecGetSettings 0x0C
  75.  
  76. #define codecSetSettings 0x0D
  77.  
  78. #define codecCDSequenceFlush 0x0E
  79.  
  80. #define codecSetTimeCode 0x0F
  81.  
  82. #define codecCanScale (1L<<0)
  83.  
  84. #define codecCanMask (1L<<1)
  85.  
  86. #define codecCanMatte (1L<<2)
  87.  
  88. #define codecCanTransform (1L<<3)
  89.  
  90. #define codecCanTransferMode (1L<<4)
  91.  
  92. #define codecCanCopyPrev (1L<<5)
  93.  
  94. #define codecCanSpool (1L<<6)
  95.  
  96. #define codecCanClipVertical (1L<<7)
  97.  
  98. #define codecCanClipRectangular (1L<<8)
  99.  
  100. #define codecCanRemapColor (1L<<9)
  101.  
  102. #define codecCanFastDither (1L<<10)
  103.  
  104. #define codecCanSrcExtract (1L<<11)
  105.  
  106. #define codecCanCopyPrevComp (1L<<12)
  107.  
  108. #define codecCanAsync (1L<<13)
  109.  
  110. #define codecCanMakeMask (1L<<14)
  111.  
  112. #define codecCanShift (1L<<15)
  113.  
  114. #define codecCanAsyncWhen (1L<<16)
  115.  
  116. #define codecCanShieldCursor (1L<<17)
  117.  
  118. #define codecCanManagePrevBuffer (1L<<18)
  119.  
  120. #if defined(powerc) || defined (__powerc)
  121. #pragma options align=mac68k
  122. #endif
  123. struct CodecCapabilities {
  124.     long                        flags;
  125.     short                        wantedPixelSize;
  126.     short                        extendWidth;
  127.     short                        extendHeight;
  128.     short                        bandMin;
  129.     short                        bandInc;
  130.     short                        pad;
  131.     unsigned long                time;
  132. };
  133. #if defined(powerc) || defined(__powerc)
  134. #pragma options align=reset
  135. #endif
  136.  
  137. typedef struct CodecCapabilities CodecCapabilities;
  138.  
  139. #define codecConditionFirstBand (1L<<0)
  140.  
  141. #define codecConditionLastBand (1L<<1)
  142.  
  143. #define codecConditionFirstFrame (1L<<2)
  144.  
  145. #define codecConditionNewDepth (1L<<3)
  146.  
  147. #define codecConditionNewTransform (1L<<4)
  148.  
  149. #define codecConditionNewSrcRect (1L<<5)
  150.  
  151. #define codecConditionNewMask (1L<<6)
  152.  
  153. #define codecConditionNewMatte (1L<<7)
  154.  
  155. #define codecConditionNewTransferMode (1L<<8)
  156.  
  157. #define codecConditionNewClut (1L<<9)
  158.  
  159. #define codecConditionNewAccuracy (1L<<10)
  160.  
  161. #define codecConditionNewDestination (1L<<11)
  162.  
  163. #define codecConditionFirstScreen (1L<<12)
  164.  
  165. #define codecConditionDoCursor (1L<<13)
  166.  
  167. #define codecConditionCatchUpDiff (1L<<14)
  168.  
  169. #define codecConditionCodecChangedMask (1L<<31)
  170.  
  171. #define codecInfoResourceType 'cdci'
  172.  
  173. #define codecInterfaceVersion 2
  174.  
  175. #if defined(powerc) || defined (__powerc)
  176. #pragma options align=mac68k
  177. #endif
  178. struct CodecCompressParams {
  179.     ImageSequence                sequenceID;
  180.     ImageDescriptionHandle        imageDescription;
  181.     Ptr                            data;
  182.     long                        bufferSize;
  183.     long                        frameNumber;
  184.     long                        startLine;
  185.     long                        stopLine;
  186.     long                        conditionFlags;
  187.     CodecFlags                    callerFlags;
  188.     CodecCapabilities            *capabilities;
  189.     ICMProgressProcRecord        progressProcRecord;
  190.     ICMCompletionProcRecord        completionProcRecord;
  191.     ICMFlushProcRecord            flushProcRecord;
  192.     PixMap                        srcPixMap;
  193.     PixMap                        prevPixMap;
  194.     CodecQ                        spatialQuality;
  195.     CodecQ                        temporalQuality;
  196.     Fixed                        similarity;
  197.     DataRateParamsPtr            dataRateParams;
  198.     long                        reserved;
  199. };
  200. #if defined(powerc) || defined(__powerc)
  201. #pragma options align=reset
  202. #endif
  203.  
  204. typedef struct CodecCompressParams CodecCompressParams;
  205.  
  206. #if defined(powerc) || defined (__powerc)
  207. #pragma options align=mac68k
  208. #endif
  209. struct CodecDecompressParams {
  210.     ImageSequence                sequenceID;
  211.     ImageDescriptionHandle        imageDescription;
  212.     Ptr                            data;
  213.     long                        bufferSize;
  214.     long                        frameNumber;
  215.     long                        startLine;
  216.     long                        stopLine;
  217.     long                        conditionFlags;
  218.     CodecFlags                    callerFlags;
  219.     CodecCapabilities            *capabilities;
  220.     ICMProgressProcRecord        progressProcRecord;
  221.     ICMCompletionProcRecord        completionProcRecord;
  222.     ICMDataProcRecord            dataProcRecord;
  223.     CGrafPtr                    port;
  224.     PixMap                        dstPixMap;
  225.     BitMapPtr                    maskBits;
  226.     PixMapPtr                    mattePixMap;
  227.     Rect                        srcRect;
  228.     MatrixRecord                *matrix;
  229.     CodecQ                        accuracy;
  230.     short                        transferMode;
  231.     ICMFrameTimePtr                frameTime;
  232.     long                        reserved[1];
  233.     char                        matrixFlags;
  234.     char                        matrixType;
  235.     Rect                        dstRect;
  236. };
  237. #if defined(powerc) || defined(__powerc)
  238. #pragma options align=reset
  239. #endif
  240.  
  241. typedef struct CodecDecompressParams CodecDecompressParams;
  242.  
  243. #define matrixFlagScale2x (1L<<7)
  244.  
  245. #define PREAMBLE Handle    storage
  246.  
  247. extern pascal ComponentResult CDGetCodecInfo(Handle storage, CodecInfo *info);
  248. extern pascal ComponentResult CDGetCompressionTime(Handle storage, PixMapHandle src, const Rect *srcRect, short depth, CodecQ *spatialQuality, CodecQ *temporalQuality, unsigned long *time);
  249. extern pascal ComponentResult CDGetMaxCompressionSize(Handle storage, PixMapHandle src, const Rect *srcRect, short depth, CodecQ quality, long *size);
  250. extern pascal ComponentResult CDPreCompress(Handle storage, CodecCompressParams *params);
  251. extern pascal ComponentResult CDBandCompress(Handle storage, CodecCompressParams *params);
  252. extern pascal ComponentResult CDPreDecompress(Handle storage, CodecDecompressParams *params);
  253. extern pascal ComponentResult CDBandDecompress(Handle storage, CodecDecompressParams *params);
  254. extern pascal ComponentResult CDCodecBusy(Handle storage, ImageSequence seq);
  255. extern pascal ComponentResult CDGetCompressedImageSize(Handle storage, ImageDescriptionHandle desc, Ptr data, long bufferSize, ICMDataProcRecordPtr dataProc, long *dataSize);
  256. extern pascal ComponentResult CDGetSimilarity(Handle storage, PixMapHandle src, const Rect *srcRect, ImageDescriptionHandle desc, Ptr data, Fixed *similarity);
  257. extern pascal ComponentResult CDTrimImage(Handle storage, ImageDescriptionHandle Desc, Ptr inData, long inBufferSize, ICMDataProcRecordPtr dataProc, Ptr outData, long outBufferSize, ICMFlushProcRecordPtr flushProc, Rect *trimRect, ICMProgressProcRecordPtr progressProc);
  258. extern pascal ComponentResult CDRequestSettings(Handle storage, Handle settings, Rect *rp, ModalFilterUPP filterProc);
  259. extern pascal ComponentResult CDGetSettings(Handle storage, Handle settings);
  260. extern pascal ComponentResult CDSetSettings(Handle storage, Handle settings);
  261. extern pascal ComponentResult CDCodecFlush(Handle storage);
  262. extern pascal ComponentResult CDCodecSetTimeCode(Handle storage, void *timeCodeFormat, void *timeCodeTime);
  263. #endif
  264.  
  265.